package matse11.LSpielProject;

public class Logik {
	
	private static short[][][]gewinnsituationen=new short[15][4][4];
	
	public static short[][][] getGewinnsituationen(){
		return gewinnsituationen;
	}
	
	
	public static boolean moeglicherZug(short[][] feld,short[][]akFeld){
		int spieler = Spiel.getZug()%2;
		if(spieler == 0){
			spieler = 2;
		}
		boolean moeglich=true;
		boolean gleich = true;
		for(int i=0; i<feld.length;i++){
			for(int j=0; j<feld.length;j++){
				if(feld[i][j]!=0 && akFeld[i][j]!=0){
					if(feld[i][j]==akFeld[i][j]&&akFeld[i][j]!=-1){
						
					}
					else{
					moeglich=false;
					break;
					}
				}
				if(!moeglich){
					break;
				}
			}
		}
		for(int j=0;j<feld.length;j++){
			for(int i=0;i<feld[0].length;i++){
				if(feld[j][i]==spieler&&akFeld[j][i]!=spieler){
					gleich=false;
					break;
				
				}
			}
		}
		if(gleich){
		return false;
		}
		else{
			return moeglich;
		}
		
	}
	public static boolean moeglicherZugNStein(short[][] ak,short[][]neutralerStein){
		boolean moeglich=false;
			for(int i=0;i<ak.length;i++){
				for(int j=0;j<ak.length;j++){
					if(neutralerStein[i][j]==-1){
						if(ak[i][j]==0){
							moeglich = true;
							break;
						}
						else{
							moeglich = false;
						}
					}
				}
				if(moeglich){
					break;
				}
			}
			return moeglich;
	}
	
	public static void logik(){
//		erzeugt gewinnpositionen, muss vor beginn des spieles einmal aufgerufen werden
		short[][]feld1={{0,0,-1,0},
						{1,1,1,0},
						{2,0,1,0},
						{2,2,2,-1}};
		gewinnsituationen[0]=feld1;
		short[][]feld2={{0,0,1,0},
						{-1,0,1,0},
						{2,1,1,-1},
						{2,2,2,0}};
		gewinnsituationen[1]=feld2;
		short[][]feld3={{0,-1,0,0},
						{-1,1,0,0},
						{2,1,1,1},
						{2,2,2,0}};
		gewinnsituationen[2]=feld3;
		short[][]feld4={{0,-1,0,0},
						{-1,0,0,1},
						{2,1,1,1},
						{2,2,2,0}};
		gewinnsituationen[3]=feld4;
		short[][]feld5={{2,0,-1,0},
						{2,2,2,-1},
						{1,1,1,0},
						{0,0,1,0}};
		gewinnsituationen[4]=feld5;
		short[][]feld6={{0,0,0,-1},
						{1,1,1,0},
						{2,0,1,0},
						{2,2,2,-1}};
		gewinnsituationen[5]=feld6;
		short[][]feld7={{0,0,1,0},
						{-1,0,1,0},
						{2,1,1,0},
						{2,2,2,-1}};
		gewinnsituationen[6]=feld7;
		short[][]feld8={{0,0,-1,0},
						{-1,1,0,0},
						{2,1,1,1},
						{2,2,2,0}};
		gewinnsituationen[7]=feld8;
		short[][]feld9={{0,0,-1,0},
						{-1,0,0,1},
						{2,1,1,1},
						{2,2,2,0}};
		gewinnsituationen[8]=feld9;
		short[][]feld10={{2,0,-1,0},
						{2,2,2,1},
						{-1,1,1,1},
						{0,0,0,0}};
		gewinnsituationen[9]=feld10;
		short[][]feld11={{0,0,0,0},
						{1,1,1,-1},
						{2,0,1,0},
						{2,2,2,-1}};
		gewinnsituationen[10]=feld11;
		short[][]feld12={{0,0,1,0},
						{1,1,1,0},
						{2,0,-1,0},
						{2,2,2,-1}};
		gewinnsituationen[11]=feld12;
		short[][]feld13={{0,1,0,0},
						{-1,1,0,0},
						{2,1,1,-1},
						{2,2,2,0}};
		gewinnsituationen[12]=feld13;
		short[][]feld14={{0,0,1,0},
						{-1,0,1,0},
						{2,-1,1,1},
						{2,2,2,0}};
		gewinnsituationen[13]=feld14;
		short[][]feld15={{0,0,1,0},
						{0,-1,1,0},
						{-1,2,1,1},
						{0,2,2,2}};
		gewinnsituationen[14]=feld15;
	}

}
